home *** CD-ROM | disk | FTP | other *** search
-
- ; Commodore plus/4 and
- ; Commodore 16 Memory Map
- ;
- ; V1.1 9 Dec 1994
- ;
-
- Label Hex Addr. Decimal Loc. Description
-
- PDIR $0000 0 7501 on-chip data-direction register
- PORT $0001 1 7501 on-chip 8-bit Input/Output register
- SRCHTK $0002 2 Token 'search' looks for (run-time stack)
- ZPVEC1 $0003-0004 3-4 Temp (renumber)
- ZPVEC2 $0005-0006 5-6 Temp (renumber)
- CHARAC $0007 7 Search character
- ENDCHR $0008 8 Flag: scan for quote at end of string
- TRMPOS $0009 9 Screen column from last TAB
- VERCK $000A 10 Flag: 0 = load 1 - verify
- COUNT $000B 11 Input buffer pointer / No. of subsctipts
- DIMFLG $000C 12 Flag: Default Array DIMension
- VALTYP $000D 13 Data type: $FF = string $00 = numeric
- INTFLG $000E 14 Data type: $80 = integer, $00 = floating
- DORES $000F 15 Flag: DATA scan/LIST quote/garbage coll
- SUBFLG $0010 16 Flag: subscript ref / user function coll
- INPFLG $0011 17 Flag: $00 = INPUT, $43 = GET, $98 = READ
- TANSGN $0012 18 Flag TAN siqn / comparison result
- CHANNL $0013 19 Flag: INPUT prompt
- LINNUM $0014-0015 20-21 Temp: integer value
- TEMPPT $0016 22 Pointer: temporary string stack
- LASTPT $0317-0018 23-24 Last temp string address
- TEMPST $0019-0021 25-33 Stack for temporary strings
- INDEX1 $0022-0023 34-35 Utility pointer area
- INDEX2 $0024-0025 36-37 Utility pointer area
- RESHO $0026 38
- RESMOH $0027 39
- RESMO $0028 40
- RESLO $0029 41
- $002A 42
- TXTTAB $002B-002C 43-44 Pointer: start of BASIC text
- VARTAB $002D-002E 45-46 Pointer: start of BASIC variables
- ARYTAB $002E-0030 47-48 Pointer: start of BASIC arrays
- STREND $0031-0032 49-50 Pointer: end of BASIC arrays (+1)
- FRFTOP $0033-0034 51-52 Pointer: bottom of string storage
- FRESPC $0035-0036 53-54 Utility string pointer
- MEMSIZ $0037-0038 55-56 Pointer: highest address used by BASIC
- CURLIN $0039-003A 57-58 Current BASIC line number
- TXTPTR $003B-003C 59-60
- FNDPNT $003D-003F 61-62
- DATLIN $003F-0040 63-64 Current DATA line number
- DATPTR $0041-0042 65-66 Pointer: Current DATA item address
- INPPTR $0043-0044 67-68 Vector: INPUT routine
- VARNAM $0045-0046 69-70 Current BASIC variable name
- VARPNT $0047-0048 71-72 Pointer: Current BASIC variable data
- FORPNT $0049-004A 73-74 Pointer: Index variable for FOR/NEXT
- OPPTR $0048-004C 75-76
- OPMASK $004D 77
- DEFPNT $004E-004F 78-79
- DSCPNT $0050-0051 80-81
- $0052 82
- HELPER $0053 83
- JMPER $0054 84
- SIZE $0055 85
- OLDOV $0056 86
- TEMPF1 $0057 87
- HIGHDS $0058-0059 88-89
- HIGHTR $005A-005B 90-91
- $005C 92
- LOWDS $005D-005E 93-94
- LoWTR $005F 95
- EXPSGN $0060 96
- FACEXP $0061 97 Floating-point accumulator #1: exponent
- FACHO $0062 98 Floating accum. #1: mantissa
- FACMOH $0063 99
- FACMO $0064 100
- FACLo $0065 101
- FACSGN $0066 102 Floating accum. #1: sign
- SGNFLG $0067 103 Pointer: series evaluation constant
- BITS $0068 104 Floating accum. #1: overflow digit
- ARGEXP $0069 105 Floating-point accumulator #2: exponent
- ARGHO $006A 106 Floating accum. #2: mantissa
- ARGMOH $006B 107
- ARGMO $006C 108
- ARGLO $006D 109
- ARGSGN $006E 110 Floating accum. #2: sign
- ARISGN $006F 111 Sign comparison result: accum. #1 vs #2
- FACOV $0070 112 Floating accum. #1. low-order (rounding)
- FBUFPT $0071-0072 113 Pointer: cassette buffer
- AUTINC $0073-0074 115-116 Increment value for auto (0 = off)
- MVDFLG $0075 117 Flag if 10K hires allocated
- KEYNUM $0076 118
- KEYSIZ $0077 119
- SYNTMP $0078 120 Used as temp Eor indirect loads
- DSDESC $0079-0078 121-123 Descriptor for DSS
- TOS $007C-037D 124-125 Top of run time stack
- TMPTON $007E-007F 126-127 Temps used by music (tone & volume)
- VOICNO $0080 128
- RUNMOD $0081 129
- POINT $0082 130
- GRAPHM $0083 131 Current graphic mode
- COLSEL $0084 132 Current color selected
- MC1 $0085 133 Multicolor 1
- FG $0086 134 Foreground color
- SCXMAX $0087 135 Maximum # of columns
- SCYMAX $0088 136 Maximum # of rows
- LTFLAG $0089 137 Paint-left flag
- RTFLAG $008A 138 Paint-Right flag
- STOPNH $008B 139 Stop paint if not BG (Not same Color)
- GRAPNT $008C-008D 140-141
- VTEMP1 $008E 142
- VTEMP2 $008F 143
-
- STATUS $0090 144 Kernal I/O status word: ST
- STREY $0091 145 Flag: STOP key / RVS key
- SPVERR $0092 146 Temp
- VERFCK $0093 147 Flag: 0 = load, 1 = verify
- C3PO $0094 148 Plag: serial bus - output char buffered
- BSOUR $0095 149 Buffered character for serial bus
- XSAV $0096 150 Temp for basin
- LDTND $0097 151 # of open files / index to file table
- DFLTN $0098 152 Default input device (0)
- DFLTO $0099 153 Default output (CMD) device (3)
- MSGFLG $009A 154 Flag: $80 = direct mode $00 = program
- SAL $009B 155 Tape pass 1 error log
- SAH $009C 156 Tape pass 2 error log
- EAL $009D 157
- EAH $009E 158
- T1 $009F-00A0 159-160 Temp data area
- T2 $00A1-00A2 161-162 Temp data area
- TIME $00A3-00A5 163-165 Real-time jiffy clock (approx) 1/60 sec
- R2D2 $00A6 166 Serial bus usage (EOI on output)
- TPBYTE $00A7 167 Byte to be written/read on/off tape
- BSOUR1 $00A8 168 Temp used by serial routine
-
- FPVERR $00A9 169
- DCOUNT $00AA 170
- FNLEN $00A8 171 Length of current file name
- LA $00AC 172 Current logical fiie number
- SA $00AD 173 Current seconda.y address
- FA $00AE 174 Current device number
- FNADR $00AF-00B0 175-176 Pointer: current file name
- ERRSUM $00B1 177
- STAL $00B2 178 I/O start address
- STAH $00B3 179
- MEMUSS $00B4-00B5 180-181 Load ram base
- TAPEBS $00B6-00B7 182-183 Base pointer to cassette base
- TMP2 $00B8-00B9 184-185
- WRBASE $00BA-00BB 186-187 Pointer to data for tape writes
- IMPARM $00BC-00BD 188-189 Pointer to immediate string for primms
- FETPTR $00BE-00BF 190-191 Pointer to byte to be fetched in bank fetc
- SEDSAL $00C0-00C1 192-193 Temp for scrolling
- RVS $00C2 194 RVS field flag on
- INDX $00C3 195
- LSXP $00C4 196 X position at start
- LSTP $00C5 197
- SFDX $00C6 198 Flag: shift mode for print
- CRSW $00C7 199 Flag: INPUT or GET from keyboard
- PNT $00C8-00C9 200-201 Pointer: current screen line address
- PNTR $00CA 202 Cursor column on current line
- QTSW $00CB 203 Flag: editor in quote mode, $00 = no
- SEDT1 $00CC 204 Editor temp use
- TBLX $00CD 205 Current cursor physical line number
- DATAX $00CE 206 Temp data area
- INSRT $00CF 207 Flag: insert mode, >0 = # INSTs
- $00D0-$00D7 208-215 Area for use by speech software
- $00D8-00E8 216-232 Area for use by application software
- CIRSEG $00E9 233 Screen line link table / editor temps
- USER $00EA-00EB 234-235 Screen editor color IP
- KEYTAB $00EC-00ED 236-237 Key scan table indirect
- TMPKEY $00EE 238
- NDX $00EF 239 Index to keyboard queue
- STPFLG $00F0 240 Pause flag
- TO $00F1-00F2 241-242 Monitor ZP storage
- CHRPTR $00F3 243
- BUFEND $00F4 244
- CHKSUM $00F5 245 Temp for checksum calculation
- LENGTH $00F6 246
- PASS $00F7 247 Which pass we are doing str
- TYPE $00F8 248 Type of block
- USE4DY $00F9 249 (B.7 = 1)=> for wr, (B.6 = 1)=> for rd
- XSTOP $00FA 250 Save xreg for quick stopkey test
- CURBNK $00FB 251 Current bank configuration
- XoN $00FC 252 Char to send for a x-on (RS232)
- XoFF $00FD 253 Char to send for a x-off (RS232)
- SEDT2 $00FE 254 Editor temporary use
- LOFBUF $00FF 255
-
-
- FBUFFR $0100-$010F 256-271
- SAVEA $0110 272 Temp Locations for
- SAVEY $0111 273 ... for Save and
- SAVEX $0112 274 ... Restore
- COLKEY $0113-0122 275-289 Color/luminance table in RAM
- SYSSTK $0124-01FF 291-511 System stack
-
- BUF $0200-0258 512-606 Basic/monitor input buffer
- OLDLIN $0259-025A 601-602 Basic storage
- OLDTXT $025B-025C 603-604 Basic storage
-
- $025D-02AC 605-684 BASIC/DOS INTERFACE AREA
- XCNT $025D DOS loop counter
- PNBUFR $025E-026D Area for filename
- DOSF1L $026E DOS filename 1 length
-
- DOSDS1 $026F DOS disk drive 1
- DOSF1A $0270-0271 DOS filename 1 addr
- DOSF2L $0272 DOS filename 2 length
- DOSDS2 $0273 DOS disk drive 2
- DOSF2A $0274-0275 DOS filename 2 addr
- DOSLA $0276 DOS logical address
- DOSEA $0277 DOS phys addr
- DOSSA $0278 DOS secordary address
- DOSDID $0279-027A DOS disk identifier
- DIDCHK $0278 DOS DID flag
- DOSSTR $027C DOS output string buffer
- DOSSPC $027D-02AC Area used to build DOS string
-
-
- Graphics Variables
-
- XPOS $02AD-02AE 685-686 Current x position
- YPOS $02AE-02B0 687-688 Current y position
- XDEST $02B1-02B2 689-690 X coordinate destination
- YDEST $02B3-02B4 691-692 Y coordinate destination
- XABS $02B5-02B6 693-694
- YABS $02B7-0288 69S-696
- XSGN $02B9-02BA 697-69B
- YSGN $02BB-028C 699-700
- FCT1 $02BD-02BE 701-702
- FCT2 $02BF-02C0 703-704
- ERRVAL $02C1-02C2 705-706
- LESSER $02C3 707
- GREATR $02C4 708
- ANGSGN $02C5 709 Sign of angle
- SINVAL $02C6-02C7 710-711 Sine of value of angle
- COSVAL $02C8-02C9 712-713 Cosine of value of angle
- ANGCNT $02CA-02CB 714-715 Temps for angle distance routines
-
-
- Start of multiply defined area #1
-
- $02CC 716 Placeholder
- BNR $02CD 717 Pointer to begin no.
- ENR $02CE 718 Pointer to end no.
- DOLR $02CF 719 Dollar flag
- FLAG $02DO 720 Comma flag
- SWE $02D1 721 Counter
- USGN $02D2 722 Sign exponent
- UEXP $02D3 723 Pointer to exponent
- VN $02D4 724 # of digits before decimal point
- CHSN $02D5 725 Justify flag
- VF $02D6 726 # of pos before decimal point (field)
- NF $02D7 727 # of pos after decimal point (field)
- POSP $02D8 728 +/- flag (field)
- FESP $02D9 729 Exponent flag (field)
- ETOF $02DA 730 Switch
- CFORM $02D8 731 Char counter (field)
- SNO $02DC 732 Sign no.
- BLFD $02DD 733 Blank/star flag
- BEGFD $02DE 734 Pointer to beginning of field
- LFOR $02DF 735 Length of format
- ENDFD $02E0 736 Pointer to end of field
-
- XCENTR $02CC-02CD 716-717
- YCENTR $02CE-02CF 718-719
- XDIST1 $02D0-02D1 720-721
- YDIST1 $02D2-02D3 722-723
- XDIST2 $02D4-02D5 724-725
- YDIST2 $02D6-02D7 726-727
- $02D8-02D0 728-729 Placeholder
-
- COLCNT $02DA 730 Characters column counter
- ROWCNT $02DB 731 Characters row counter
- STRCNT $02DC 732
-
-
- Start of multiply defined area #2
-
- XCORD1 $02CC-02CD 716-717
- YCORD1 $02CE-02CF 718-719
- BOXANG $02D0-02D1 720-721 Rotation angle
- XCOUNT $02D2-02D3 722-723
- YCOUNT $02D4-02D5 724-725
- BXLENG $02D6-02D7 726-727 Length of a side
- XCORD2 $02D8-02D9 728-729
- YCORD2 $02DA-02DB 730-731
-
- XCIRCL $02CC-02CD 716-717 Circle center, x coordinate
- YCIRCL $02CE-02CF 718-719 Circle center, y coordinate
- XRADUS $02D0-02D1 720-721 X radius
- YRADUS $02D2-02D3 722-723 Y radius
- ROTANG $02D4-02D5 724-725 Rotation angle
- ANGBEG $02D8-02D9 728-729 Arc angle start
- ANGEND $02DA-02DB 730-731 Arc angle end
- XRCOS $02DC-02DD 732-733 X radius * cos (rotation angle)
- YRSIN $02DE-02DF 734-735 Y radius * sin (rotation angle)
- XRSIN $02E0-02E1 736-737 X radius * sin (rotation angle)
- YRCOS $02E2-02E3 738-739 Y radius * cos (rotation angle)
-
-
- Start of multiply defined area #3
-
- $02CC 716 Placeholder
- KEYLEN $02CD 717
- KEYNXT $02CE 718
- STRS2 $02CE 719 String length
- GETTYP $02D0 720 Replace string mode
- STRPTR $02D1 721 String position counter
- OLDBYT $02D2 722 Old bit map byte
- NEWBYT $02D3 723 New string or bit map byte
- $02D4 724 Placeholder
- XSI2E $02D5-02D6 725-726 Shape column length
- YSIZE $02D7-02D8 727-728 Shape row length
- XSAVE $02D9-02DA 729-730 Temp for column length
- STRADR $02D8-02DC 731-732 Save shape string descriptor
- BITIDX $02DD 733 Bit index into byte
- SAYSIZ $02DE-02E1 734-737 Temporary work locations
-
- CHRPAG $02E4 740 High byte addr of char ROM for char cmd
- LITCNT $02E5 741 Temp for gshape
- SCALEM $02E6 742 Scale mode flag
- WIDTH $02E7 743 Double width flag
- FILFLG $02E8 744 Box fill flag
- BITMSK $02E9 745 Temp for bit mask
- NUMCNT $02EA 746
- TRCFLG $02EB 747 Flags trace mode
-
- T3 $02EC 748
- T4 $02ED-02EE 749-750
- VTEMP3 $02EF 751 Graphic temp storage
- VTEMP4 $02F0 752
- VTEMP5 $02F1 753
-
- ADRAY1 $02E2-02F3 754-755 Ptr to routine: convert float to integer
- ADRAY2 $02F4-02F5 756-757 Ptr to routine: convert integer to float
-
- BNKVEC $02FE-02FF 766-767 Vector for function cartridge users
- IERROR $0300-0301 768-769 Indirect Error (Output Error in .X)
- IMAIN $0302-0303 770-771 Indirect Main (System Direct Loop)
- ICRNCH $0304-0305 772-773 Indirect Crunch (Tokenization Routine)
- IOPLOP $0306-0307 774-775 Indirect List (Char List)
- IGONE $0308-0309 776-777 Indirect Gone (Character Dispatch)
- IEVAL $030A-0303 778-779 Indirect Eval (Symbol Evaluation)
- IESCLK $030C-030D 780-781 Escape token crunch
- IESCPR $030E-030F 782-783
- IESCEX $0310-0311 784-785
- ITIME $0312-0313 786-787
- CINV $0314-0315 7B8-789 IRQ Ram Vector
- CBINV $0316-0317 790-791 BRK Instr RAM Vector
- IOPEN $0318-0319 792-793 Indirects for Code
- ICLOSE $031A-031B 794-795
- ICHKIN $031C-031D 796-797
- ICKOUT $031E-031F 798-799
- ICLRCH $0320-0321 800-801
- IBASIN $0322-0323 802-803
- IBSOUT $0324-Q325 804-805
- ISTOP $0326-0327 806-807
- IGETIN $0328-0329 808-809
- ICLALL $032A-032B 810-811
- USRCMD $032C-032D 812-813
- ILOAD $032E-032E 814-815
- ISAVE $0330-0331 816-817 Savesp
-
- TAPBUF $0333-03F2 819-1010 Cassette tape buffer
- WRLEN $03F3-03F4 1011-1012 Length of data to be written to tape
- RDCNT $03F5-03F6 1013-1014 Length of data to be read from tape
- INPQUE $03F7-0436 1015-1078 RS-232 input queue
- ESTARL $0437-0454 1079-1108
- ESTAKH $0455-0472 1109-1138
-
- CHRGET $0473-0478 1139-1144
- CHRGOT $04?9-0484 1145-1156
- QNUM $0485-0493 1157-1171
-
- INDSUB $0494-04A1 1172-1185 Shared ROM fetch sub
- ZERO $04A2-04A4 1186-1188 Numeric constant for Basic
-
- INDTXT $04A5-04AF 1189-1199 Txtptr
- INDIN1 $04B0-04BA 1200-1210 Index & Index1
- INDIN2 $04BB-04C5 1211-1221 Index2
- INDST1 $04C6-04D0 1222-1232 Strng1
- INDLOW $04D1-04DB 1233-1243 Lowtr
- INDFMO $04DC-04E6 1244-1254 Facmo
-
- PUFILL $04E7 1255 Print using fill symbol [space]
- PUCOMA $04E8 1256 Print using comma symbol [;]
- PUDOT $04E9 1257 Print using D.P. symbol [.]
- PUMONY $04EA 1258 Print using monetary symbol [$]
-
- TMPDES $04EB-04EE 1259-1262 Temp for instr
- ERRNUM $04EF 1263 Last error number
- ERRLIN $04F0-04F1 1264-1265 Line # of last error
- TRAPNO $04F2-04F3 1266-1267 Line to go on error
- TMPTRP $04F4 1268 Hold trap no. temporarily
- ERRTXT $04F5-04E6 1269-1270
- OLDSTR $04F7 1271
-
- TMPTXT $04F8-04F9 1272-1273
- TMPLIN $04FA-04F8 1274-1275
-
- MTIMLO $04FC-04FD 1276-1277 Table of pending jiffies (2's comp)
- MTIMHI $04FE-04FF 1278-1279
- USRPOK $0500-0502 1280-1282
- KERNDX $0503-0507 1283-1287
- DEJAVU $0508 1288 'cold' or 'warm' start status
-
- LAT $0509-0512 1289-1298 Logical file numbers
- FAT $0513-051C 1299-1308 Primary device numbers
- SAT $051D-0526 1309-1318 Secondary addresses
-
- KEYD $0527-0530 1319-1328 IRQ keyboard buffer
- MEMSTR $0531-0532 1329-1330 Start of memory [1000]
-
- MSIZ $0533-0534 1331-1332 Top of memory [FD00]
- TIMOUT $0535 1333 IEEE timeout flag
-
- FILEND $0536 1334 File end reached = 1, 0 otherwise
- CTALLY $0537 1335 # of chars left in buffer (for R & W)
- CBUFVA $0538 1336 # of total valid chars in buffer (R)
- TPTR $0539 1337 Ptr to next char in buffer (for R & W)
- FLTYPE $053A 1338 Contains type of current cass file
-
- COLOR $053B 1339 Active attribute byte
- FLASH $053C 1340 Character flash flag
- $053D 1341 FREE
- HIBASE $053E 1342 OC Base location of screen (top) [0C]
- XMAX $053F 1343
- RPTFLG $0540 1344 Key repeat flag
- KOUUT $0541 1345
- DELAY $0542 1346
- SHFLAG $0543 1347 Shift flag byte
- LSTSHF $0544 1348 Last shift pattern
- KEYLOG $0545-0546 1349-1350 Indirect for keyboard table setup
- MODE $0547 1351 shift, C=
- AUTODN $0548 1352 Auto scroll down flag (0=on,0<>off)
- LINTMP $0549 1353
- ROLFLG $054A 1354
-
- FORMAT $054B 1355 Monitor non-zpage storage
- MSAL $054C-054E 1356-1358
- WRAP $054F 1359
- TMPC $0550 1360
- DIFF $0551 1361
- PCH $0552 1362
- PCL $0553 1363
- FLGS $0554 1364
- ACC $0555 1365
- XR $0556 1366
- YR $0557 1367
- SP $0558 1368
- INYL $0559 1369
- INVH $055A 1370
- CMPFLG $055B 1371 Used by various monitor routines
- BAD $055C 1372
-
- KYNDX $055D 1373 Used for programmable keys
- KEYIDX $055E 1374
- KEYBUF $055F-0566 1375-1382 Table of P.F. lengths
- PKY9UF $0567-05E6 1383-1510 P.F. Key storage area
-
- KDATA $05E7 1511 Temp for data write to kennedy
- RDYCMD $05E8 1512 Select for kennedy read or write
- KDYNUM $05E9 1513 Kennedy's dev #
- RDYPRS $05EA 1514 Rennedy present = $ff, else = $00
- KDYTYP $05EB 1515 Temp for type of open for kennedy
-
-
- SAVRAM $05EC-06E8 1516-1771 1 page used by banking routines
- PAT $05EC-05EF 1516-1519 Physical Address Table
- LNGJMP $05F0-05F1 1520-1521 Long jump address
- FETARG $05F2 1522 Long jump accumulator
- FETXRG $05F3 1523 Long jump x register
- FETSRG $05F4 1524 Long jump status register
-
- AREAS $05F5-065D 1525-1629 RAM areas for banking
-
- ASPECH $065E-06EB 1630-1771 RAM area for speech
-
- STKTOP $06EC-07AF 1772-1967 BASIC run-time stack
-
- WROUT $07B0 1968 Byte to be written on tape
- PARITY $07B1 1969 Temp for parity calc
-
- TT1 $07B2 1970 Temp for write-header
- TT2 $07B3 1971 Temp for write-header
- RDBITS $07B5 1973 Local index for READBYTE routine
- ERRSP $07B6 1974 Pointer into the error stack
- FPERRS $07B7 1975 Number of first pass errors
-
- DSAMP1 $07B8-07B9 1976-1977 Time constant
- DSAMP2 $07BA-07BB 1978-1979 Time constant
- ZCELL $07BC-07BD 1980-1981 Time constant
-
- SRECOV $07BE 1982 Stack marker for stopkey recover
- DRECOV $07BF 1983 Stack marker for dropkey recover
- TRSAVE $07C0-07C3 1984-1987 params passed to RDBLOK
- RDETMP $07C4 1988 Temp stat save for RDBLOK
- LDRSCN $07C5 1989 # consec shorts to find in leader
- CDERRM $07C6 1990 # Errors fatal in RD countdown
- VSAVE $07C7 1991 Temp for Verify command
- T1PIPE $07C8-a7CB 1992-1995 Pipe temp for T1
- ENEXT $07CC 1996 Read error propagate
-
-
- FOR RS-232
-
- UOUTQ $07CD 1997 User chracter to send
- UOUTFG $07CE 1998 0 = empty ; 1 = full
- SOUT9 $07CF 1999 System character to send
- SOUNFG $07D0 2000 0 = empty ; 1 = full
- INOFPT $07D1 2001 Pntr to front of input queue
- INQRPT $07D2 2002 Pntr to rear of input queue
- INQCNT $07D3 2003 # of chars in input queue
- ASTAT $07D4 2004 Temp status for ACIA
- AINTMP $07D5 2005 Temp for input routine
- ALSTOP $07D6 2006 FLG for local pause
- ARSTOP $07D7 2007 FLG for remote pause
- APRES $07D8 2008 FLG to indicate presence of ACIA
-
- RLUDES $07D9-07E4 2009-2020 Indirect routine downloaded
- SCBOT $07E5 2021 Screen bottom (0...24)
- SCTOP $07E6 2022 Screen top
- SCLF $07E7 2023 Screen left (0...39)
- SCRT $07E8 2024 Screen right
- SCRDIS $07E9 2025 Negative = scroll out
- INSFLG $07EA 2026 Insert mode: FF = on, 00 = off
- LSTCHR $07EB 2027
- LOGSCR $07EC 2028
- TCOLOR $07ED 2029
- BITABL $07EE-07F1 2030-2033
-
- SAREG $07F2 2034 Registers for SYS command
- SXREG $07F3 2035
- SYREG $07F4 2036
- SPREG $07F5 2037
-
- LSTX $07F6 2038 Key scan index
- STPDSB $07F7 2039 Flag to disable CTRL-S pause
- RAMROM $07F8 2040 MSB for monitor fetches from ROM=0;RAM=1
- COLSW $07F9 2041 MSB for color/lim table in RAM=0;ROM=1
- FFRMSK $07FA 2042 ROM mask for split screen
- VMBMSK $07FB 2043 VM base mask for split screen
- LSEM $07FC 2044 Motor lock semaphore for cassette
- PALCNT $07FD 2045 PAL tod
-
-
- TEDATR $0800-0BFF 2048-3071 TED attribute bytes
- TEDSCN $0C00-0FFF 3072-4095 TED character pointers
- BASBGN $1000- 4096- Start of BASIC text area
- BMLUM $1800-1BFF 6144-7167 Luminance for bit map screen
- BMCOLR $1C00-1FFF 7168-8191 Color for bit map
-
- Commodore 16 and plus/4 Memory Configuration
-
- $0000 System memory
- $0800 Color memory (Text)
- $0C00 Video matrix (Text)
- $1000 Beginning of BASIC RAM (without graphics)
- $1800 Luminance (Graphics)
- $1C00 Colour table (Graphics)
- $2000 Graphics screen data
- $4000 Beginning of BASIC RAM (with graphics)
- $8000 ROM BANK LOW (BASIC)
- $C000 BASIC expansions
- $D000 Character table
- $D800 Operating system
- $FC00 Routines for switching banks
- $FD00 End of BASIC RAM, I/O area
-
- According to the schematics diagram, $FD00-$FF3F contains the following,
- regardless of the RAM/ROM banking configuration:
-
- $FD00-FD0F: 6551 ACIA (for the RS232, only on the +4. 4 registers.)
- $FD10-FD1F: 6529B (1 register, drives 8 I/O-lines on the +4 user port)
- $FD30-FD3F: 6529B (1 register, keyboard scan. The other 8 lines come from
- TED)
-
- $FF00: TED (registers shown below)
- $FF40: ROM
-
- 0 Timer 1 low
- 1 Timer 1 high
- 2 Timer 2 low
- 3 Timer 2 high
- 4 Timer 3 low
- 5 Timer 3 high
- 6 Test ECM BMM Blank Rows Y2 Y1 Y0
- 7 RVS off PAL Freeze MCM Columns X2 X1 X0
- 8 Keyboard Latch
- 9 IRQ I-T3 - I-T2 I-T1 I-LP I-RAS -
- A - EI-T3 - EI-T2 EI-T1 EI-LP EI-RAS RC8
- B RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0
- C - - - - - - C9 CUR8
- D CUR7 CUR6 CUR5 CUR4 CUR3 CUR2 CUR1 CUR0
- E SND1-7 SND1-6 SND1-5 SND1-4 SND1-3 SND1-2 SND1-1 SND1-0
- F SND2-7 SND2-6 SND2-5 SND2-4 SND2-3 SND2-2 SND2-1 SND2-0
- 10 - - - - - - SND2-9 SND2-8
- 11 SND-REL Noise V2-SEL V1-SEL VOL3 VOL2 VOL1 VOL0
- 12 - - BMB2 BMB1 BMB0 R-Bank S1-9 S1-8
- 13 CB5 CB4 CB3 CB2 CB1 CB0 SCLOCK Status
- 14 VM4 VM3 VM2 VM1 VM0 - - -
- 15 - LUM2 LUM1 LUM0 COLOR3 COLOR2 COLOR1 COLOR0
- 16 - LUM2 LUM1 LUM0 COLOR3 COLOR2 COLOR1 COLOR0
- 17 - LUM2 LUM1 LUM0 COLOR3 COLOR2 COLOR1 COLOR0
- 18 - LUM2 LUM1 LUM0 COLOR3 COLOR2 COLOR1 COLOR0
- 19 - LUM2 LUM1 LUM0 COLOR3 COLOR2 COLOR1 COLOR0
- 1A - - - - - - BRE9 BRE8
- 1B BRE7 BRE6 BRE5 BRE4 BRE3 BRE2 BRE1 BRE0
- 1C - - - - - - - VL8
- 1D VL7 VL6 VL5 VL4 VL3 VL2 VL1 VL0
- 1E H8 H7 H6 H5 H4 H3 H2 H1
- 1F - BL3 BL2 BL1 BL0 VSUB2 VSUB1 VSUB0
-
- 3E Write switches on ROM bank
- 3F Write switches on RAM bank
-
- $FF0E 65294 Voice #1 frequency, bits 0-7
-
- $FF0F 65295 Voice #2 frequency, bits 0-7
-
- $FF10 65296 Voice #2 frequency, bits 8 & 9
- (bit 0 is bit 8, bit 1 is bit 9)
-
- $FF11 65297 Bits 0-3 : Volume control
- Bit 4 : Voice #1 select
- Bit 5 : Voice #2 select
- Bit 6 : Voice #2 noise select
- Bit 7 : Sound reload
-
- $FF12 65298 Bit 0-1 : Voice #1 frequency, bits 8 & 9
- Bit 2 : TED data fetch ROM/RAM select
- Bits 0-5 : Bit map base address
-
- $FF13 65299 Bit 0 : Clock status
- Bit 1 : Set single clock
- Bits 2-7 : Character data base address
-
- $FF14 65309 Bits 3-7 : Video matrix/color memory base address
-
- $FF15 65301 Background color register
- Bits 0-3 : Color
- Bits 4-6 : Luminance
-
- $FF16 65302 Color register #1
- Bits 0-3 : Color
- Bits 4-6 : Luminance
-
- $FF17 65303 Color register #2
- Bits 0-3 : Color
- Bits 4-6 : Luminance
-
- $FF18 65304 Color registes #3
- Bits 0-3 : Color
- Bits 4-6 : Luminance
-
- $FF19 65305 Color register #4
- Bits 0-3 : Color
- Bits 4-6 : Luminance
-
- $FF1A 65306 Bit map reload
-
- $FF1B 65307 Bit map reload
-
- $FF1C 65308 Bit 0 : Vertical line bit 8
-
- $FF1D 65309 Bits 0-7 : Vertical line bits 0-7
-
- $FF1E 65310 Horizontal position
-
- $FF1F 65311 Blink, vertical sub address
-
- $FF3E 65342 ROM select
-
- $FF3F 65343 RAM select
-
-
-
- BANKING JUMP TABLE
-
- $FCF1 64753 JMP to cartridge IRQ routine
- $FCF4 64756 JMP to PHOENIX routine
- $FCF7 64759 JMP to LONG FETCH routine
- $FCFA 64762 JMP to LONG JUMP routine
- $FCFD 64765 JMP to LONG IRQ routine
-
-
- UNOFFICIAL JUMP TABLE
- $FF49 65353 JMP to define function key routine
- $FF4C 65356 JMP to PRINT routine
- $FF4F 65359 JMP to PRIMM routine
- $FF52 65362 JMP to ENTRY routine
- $FF80 65408 RELEASE # OF KERNAL (MSB: 0 = NTSC ; 1 = PAL)
-
-
- KERNAL JUMP TABLE
-
- ; NAME ADDRESS DESCRIPTION
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- CINT $FF81 65409 Initialize screen editor
- IOINIT $FF84 65412 Initialize I/O devices
- RAMTAS $FF87 65415 Ram test
- RESTOR $FF8A 65418 Restore vectors to initial values
- VECTOR $FF8D 65421 Change vectors for user
- SETMSG $FF90 65424 Control O.S. messages
- SECND $FF93 65427 Send SA after LISTEN
- TKSA $FF96 65430 Send SA after TALK
- MEMTOP $FF99 65433 Set/Read top of memory
- MEMBOT $FF9C 65436 Set/Read bottom of memory
- SCNKEY $FF9F 65439 Scan keyboard
- SETTMO $FFA2 65442 Set timeout in DMA disk
- ACPTR $FFA5 65445 Handshake serial bus or DMA disk byte in
- CIoUT $FFA8 65448 Handshake serial bus or DMA disk byte out
- UNTLR $FFAB 65451 Send UNTALK out serial bus or DMA disk
- UNLSN $FFAE 65454 Send UNLISTEN out serial bus or DMA disk
- LISTN $FFB1 65457 Send LISTEN out serial bus or DMA disk
- TALK $FFB4 65460 Send TALK out serial bus or DMA disk
- READSS $FFB7 65463 Return I/O STATUS byte
- SETLFS SEF8A 65466 Set LA, FA, SA
- SETNAM $FFBD 65469 Set length and FN address
- OPEN $FFC0 65472 Open logical file
- CLOSE $FFC3 65475 Close logical file
- CHKIN $FFC6 65478 Open channel in
- CHOUT $FEC9 65481 open channel out
- CLRCH $FECC 65484 Close I/O channels
- 8ASIN $FFCF 65487 Input from channel
- BSOUT $FFD2 65490 output to channel
- LOADSP $FFD5 65493 Load from file
- SAYESP $FFD8 65496 Save to file
- SETTIM $FFDB 65499 Set internal clock
- RDTIM $FFDE 65502 Read internal clock
- STOP $FFE1 6S50S Scan STOP key
- GETIN $FFE4 65508 Get character from queue
- CLALL $FFE7 65511 Close all files
- UDTIM $FFEA 65514 Increment clock
- SCRORG $FFED 65517 Screen org.
- PLOT $FFF0 65520 Read/Set X,Y coord of cursor
- IOBASE $FFF3 65523 Return location of start of I/O
-
-